package com.dragon.modules.yuegou.client.wechat_mini.response;

import com.dragon.modules.yuegou.client.wechat_mini.common.BaseResponse;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import javax.annotation.Nullable;

/**
 * code换session响应数据封装类
 * 
 * @author liuwu
 *
 */
@SuppressWarnings("serial")
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Code2SessionResponse extends BaseResponse {

	/**
	 * 用户唯一标识
	 */
	private String openid;

	/**
	 * 会话密钥
	 */
	@JsonProperty("session_key")
	private String sessionKey;

	/**
	 * 用户在开放平台的唯一标识符，在满足 UnionID 下发条件的情况下会返回
	 */
	@Nullable
	private String unionid;

	/**
	 * 获取用户唯一标识
	 * 
	 * @return 用户唯一标识
	 */
	public String getOpenid() {
		return openid;
	}

	/**
	 * 设置用户唯一标识
	 * 
	 * @param openid 用户唯一标识
	 */
	public void setOpenid(String openid) {
		this.openid = openid;
	}

	/**
	 * 获取会话密钥
	 * 
	 * @return 会话密钥
	 */
	public String getSessionKey() {
		return sessionKey;
	}

	/**
	 * 设置会话密钥
	 * 
	 * @param sessionKey 会话密钥
	 */
	public void setSessionKey(String sessionKey) {
		this.sessionKey = sessionKey;
	}

	/**
	 * 获取用户在开放平台的唯一标识符，在满足 UnionID 下发条件的情况下会返回
	 * 
	 * @return 用户在开放平台的唯一标识符，在满足 UnionID 下发条件的情况下会返回
	 */
	@Nullable
	public String getUnionid() {
		return unionid;
	}

	/**
	 * 设置用户在开放平台的唯一标识符，在满足 UnionID 下发条件的情况下会返回
	 * 
	 * @param unionid 用户在开放平台的唯一标识符，在满足 UnionID 下发条件的情况下会返回
	 */
	public void setUnionid(@Nullable String unionid) {
		this.unionid = unionid;
	}

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("Code2SessionResponse [");
		if (openid != null) {
			builder.append("openid=");
			builder.append(openid);
			builder.append(", ");
		}
		if (sessionKey != null) {
			builder.append("sessionKey=");
			builder.append(sessionKey);
			builder.append(", ");
		}
		if (unionid != null) {
			builder.append("unionid=");
			builder.append(unionid);
		}
		builder.append("]");
		return builder.toString();
	}

}
